1. Field of the Invention
This invention relates to data processors, and more particularly, to data processors utilizing circular data buffers.
2. Description of the Prior Art
In the field of data processing it is sometimes necessary or convenient to process data which is stored in a first-in-first-out arrangement. Particularly in the art of signal processing, data is input in a time sequential fashion and retained in time order as processing proceeds. Older data is discarded from the head of the list of data while new data is added to the foot of the list.
One way of implementing such a data arrangement is to use a real or a simulated shift register. As each new data sample is input, the oldest sample is discarded; each remaining sample is moved up one storage location; and the newest sample is put in the first location. Such an arrangement is shown in an article by L. R. Rabiner, "A Simplified Computational Algorithm for Implementing FIR Digital Filters," IEEE TRANSACTIONS ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING, June, 1977 at page 260. As Rabiner notes, such an implementation is costly in processing time. For N signal samples, there must be N shifts of the data each time a new sample is input.
A second and better technique shown by Rabiner is to use a dynamic storage array. This leaves the data samples static, but moves a pointer through the locations, designating the newest sample. The location of any desired sample can be located by its relation forward or backward from the newest sample. However, as Rabiner indicates, all calculations which displace the pointer forward or backward must include a check to insure that the new pointer location does not fall outside the range of the data array. Executing the necessary range check requires significant computing time which can be better spent performing actual signal computations.